./" *************************************************************************
./"     gwm.1：gwm(1)手册页。
./"     版权 (C) 2020-2025 gsm <406643764@qq.com>
./"     本程序为自由软件：你可以依据自由软件基金会所发布的第三版或更高版本的
./" GNU通用公共许可证重新发布、修改本程序。
./"     虽然基于使用目的而发布本程序，但不负任何担保责任，亦不包含适销性或特
./" 定目标之适用性的暗示性担保。详见GNU通用公共许可证。
./"     你应该已经收到一份附随此程序的GNU通用公共许可证副本。否则，请参阅
./" <http://www.gnu.org/licenses/>。
./" ************************************************************************/

.TH gwm 1 2025年5月 "gwm 2.13.4" gwm
.
.SH 名称
.B
gwm \- gwm（gsm's window manager），是一个用C语言编写的基于X11的动态窗口管理器。
.
.SH 摘要
.B gwm
.
.SH 描述
.PP
 gwm（gsm's window manager），是一个用C语言编写的基于X11的动态窗口管理器。
.PP
X窗口系统的子窗口在屏幕空间上总是位于父窗口之上，而后打开的窗口在屏幕空间上总是位于先打开的兄弟窗口之上；最新打开的窗口在屏幕空间上总是位于最上层。这种窗口次序叫窗口堆叠次序，简称窗口叠次序。叠次序是可以调整的。
.PP
gwm把物理屏幕虚拟为多个逻辑屏幕，即所谓的虚拟桌面。在逻辑上，对于每个虚拟桌面，在根窗口之上，从下至上把屏幕空间分成以下七层：桌面层、下层、平铺层、堆叠层、上层、停靠层、全屏层；从平面上，又把屏幕分为任务栏和工作区域。这仅仅是逻辑上的分层，目的是为了实现视觉上的分层。实际上，gwm通过调整窗口的叠次序来实现分层效果，并非通过重设父窗口来进行分层。上一层的窗口总是会挡着其下一层的窗口。gwm支持平铺、堆叠两种窗口布局模式，这些模式可以在运行时动态切换。任务栏由左边的按钮、中间的缩微栏、右边的状态栏组成。按钮用于实现特定的功能，各按钮的文字从左至右依次为：1、2、3、▣、▥、■、^。缩微栏用于显示缩微窗口，点击缩微窗口则去缩微窗口。状态栏显示根窗口名字。
.PP
以下所说的窗口，除非特别说明，否则均指受本窗口管理器所管理的窗口。以下所说的当前窗口，除非特别说明，否则均指当前虚拟桌面下位于该窗口所属层顶部并获得键盘输入焦点的窗口。以下说明或者命令，除非特别说明，否则均限于当前虚拟桌面。
.PP
平铺模式是所有普通窗口按比例分配平铺层的工作区域的布局模式。它把工作区域從左至右划分为主区域、次区域、固定区域。若固定区域没有窗口占用，则该区域并入主区域和次区域。若次区域没有窗口占用，则该区域并入主区域。三个区域各自均匀分配空间给相应的窗口。主、次区域的窗口是互为补充的，即：若因某操作而造成主区域窗口数量比主区域可容纳窗口数量多，则主区域底部的窗口移到次区域顶部；若因某操作而造成主区域窗口数量比主区域可容纳窗口数量少并且次区域窗口数量大于零，则次区域顶部的窗口移到主区域底部。以下把这种规则称为主次区域互补。
.PP
堆叠模式是窗口之间可以堆叠、所有窗口按其请求的位置排列于工作区域的布局模式。
.PP
gwm为所有窗口分别重设父窗口，该父窗口还包括边框、标题栏，这两者统称窗口框架。重设父窗口之前的原窗口范围称为非框架区域。其中，标题栏从左至右依次设置程序标识按钮、标题区域、其他按钮。程序标识按钮用于实现下拉菜单功能。标题区域用于显示窗口的标题，以及提供移动窗口的功能。其他按钮用于实现特定的功能，按钮的数量随基本窗口布局模式而异。在平铺模式下，各按钮的文字从左至右依次为：◁、▼、▷、△、—、◲、🗙。在堆叠模式下，不显示◁、▼、▷、△按钮。
.
.SH 选项
无。
.
.SH 用法
.
.SS 通用说明
.
.TP
可以通过xmodmap(1)查看功能转换键的映射，通常Mod1对应Alt、Mod4对应Super。
.TP
使用键盘命令、定位器命令时，将忽略大写锁定键、数字锁定键。
.TP
在平铺模式下移动窗口或调整窗口大小，该窗口切换至堆叠层顶部，而其余窗口保持原来的布局模式。仅能在堆叠、平铺模式下移动窗口或调整窗口尺寸。仅能在平铺模式下执行区域相关操作。移动窗口或调整窗口尺寸时，将显示窗口坐标和尺寸的提示窗口。其中尺寸是以程序偏好的尺寸步进值为单位，既可能是以像素作为单位，也可能以字符宽度作为单位，亦可能是其他。
.TP
窗口组是指所有相同程序打开的窗口，而窗口亚组是指一个程序主窗口及其所有后代临时窗口。若窗口亚组含有模态窗口，则只能操作顶部模态窗口。对窗口执行缩微、去缩微、切换桌面操作时，会对同亚组的其他窗口执行相同操作；执行其他操作时，只作用于该窗口。
.TP
当在非当前虚拟桌面的客户窗口有紧急或关注请求时，与该客户窗口所在的虚拟桌面对应的任务栏桌面按钮均会改变颜色，通常用红色表示紧急请求，用黄色表示关注请求。具体颜色因颜色主题而异。
.TP
以下命令如无特别说明，作用范围均在当前桌面。
.TP
状态栏会显示"xsetroot \-name"的结果。若未设置，则显示"gwm"。
.TP
gwm启动后会立即尝试执行~/.config/gwm/autostart.sh。
.
.SS 键盘命令
.
.TP
.B F1
依次尝试用以下终端模拟器打开gwm手册页直到用其中之一打开或试完为止：lxterminal、xfce4-terminal、xterm。以下简称打开gwm手册页。
.
.TP
.B 亮度减小键
减小屏幕亮度。
.
.TP
.B 亮度增大键
增大屏幕亮度。
.
.TP
.B Mod4+Mod1+f
打开默认的文件浏览器。
.
.TP
.B Mod4+Mod1+g
打开首选游戏，即韦诺之战。
.
.TP
.B Mod4+Mod1+q
打开QQ。
.
.TP
.B Mod4+Mod1+t
依次尝试打开以下模拟终端直到打开其中之一或试完为止：lxterminal、xfce4-terminal、gnome-terminal、konsole5、xterm。以下简称打开模拟终端。
.
.TP
.B Mod4+Mod1+w
打开默认的网络浏览器。
.
.TP
.B Mod4+Mod1+F1
运行以下命令：mplayer -shuffle ~/music/*。
.
.TP
.B Mod4+Mod1+F2
切换以上mplayer命令的启停状态。
.
.TP
.B Mod4+Mod1+F3
终止以上mplayer命令。
.
.TP
.B Mod4+Control+F1
用amixer来减小音量。
.
.TP
.B Mod4+Control+F2
用amixer来增加音量。
.
.TP
.B Mod4+Control+F3
用amixer来把音量设置成最大。
.
.TP
.B Mod4+Control+F4
用amixer来在当前音量与静音之间切换。
.
.TP
.B Mod4+Control+l
注销gwm会话，即：pkill -9 startgwm。
.
.TP
.B Mod4+Control+p
关机。
.
.TP
.B Mod4+Control+r
重启操作系统。
.
.TP
.B Mod4+k
向上移动当前窗口。
.
.TP
.B Mod4+j
向下移动当前窗口。
.
.TP
.B Mod4+h
向左移动当前窗口。
.
.TP
.B Mod4+l
向右移动当前窗口。
.
.TP
.B Mod4+Up
減小窗口高度。
.
.TP
.B Mod4+Down
增大窗口高度。
.
.TP
.B Mod4+Left
減小窗口寬度。
.
.TP
.B Mod4+Right
增大窗口寬度。
.
.TP
.B Mod4+F1
把当前窗口切换至主区域的顶部。
.
.TP
.B Mod4+F2
把当前窗口切换至次区域的顶部。
.
.TP
.B Mod4+F3
把当前窗口切换至固定区域的顶部。
.
.TP
.B Mod4+F4
把当前窗口切换至堆叠层顶部。
.
.TP
.B Mod4+f
把当前窗口切换至全屏。
.
.TP
.B Mod4+a
把当前窗口切换至上层顶部。
.
.TP
.B Mod4+b
把当前窗口切换至下层顶部。
.
.TP
.B Mod4+Return
若当前窗口是缩微窗口，则去缩微化该窗口。
.
.TP
.B Mod4+Tab
切换到下一个窗口。
.
.TP
.B Mod4+Shift+Tab
切换到上一个窗口。
.
.TP
.B Mod4+c
关闭当前窗口。
.
.TP
.B Mod4+s
切换到堆叠模式。
.
.TP
.B Mod4+t
切换到平铺模式。
.
.TP
.B Mod4+i
增加主区域可容纳窗口的数量。
.
.TP
.B Mod4+Shift+i
减少主区域可容纳窗口的数量。
.
.TP
.B Mod4+m
如果存在次区域，则增大主区域比例，并相应地减小次区域比例。
.
.TP
.B Mod4+Shift+m
如果存在次区域，则减小主区域比例，并相应地增大次区域比例。
.
.TP
.B Mod4+x
如果存在固定区域，则增加固定区域比例，并相应地减小主区域比例。
.
.TP
.B Mod4+Shift+x
如果存在固定区域，则减小固定区域比例，并相应地增加主区域比例。
.
.TP
.B Mod4+PageDown
切换至下一个虚拟桌面。可循环切换。
.
.TP
.B Mod4+PageUp
切换至上一个虚拟桌面。可循环切换。
.
.TP
.B Print
全屏截图并保存到文件。
.
.TP
.B Mod4+Print
对当前窗口截图并保存到文件。
.
.TP
.B Mod4+r
打开运行输入框。
.
.TP
.B Mod4+Delete
退出gwm。若通过startgwm启动gwm的话，会重新打开gwm，相当于刷新gwm。
.
.TP
.B Mod4+Shift+数字N键
切换到第N个虚拟桌面。
.
.TP
.B Mod4+数字N键
把当前窗口移动到第N个虚拟桌面。
.
.TP
.B Mod4+Mod1+数字N键
把所有窗口移动到第N个虚拟桌面。
.
.TP
.B Control+数字N键
把当前窗口移动到第N个虚拟桌面，并切换到第N个虚拟桌面。
.
.TP
.B Control+Mod1+数字N键
把所有窗口移动到第N个虚拟桌面，并切换到第N个虚拟桌面。
.
.TP
.B Mod1+数字N键
把当前窗口附加到第N个虚拟桌面。
.
.TP
.B Mod1+Shift+数字N键
把所有窗口附加到第N个虚拟桌面。
.
.TP
.B Shift+Control+0
把当前窗口附加到所有虚拟桌面。
.
.SS 定位器命令
.
.TP
定位器悬停是指定位器在设定的时间内不移动。定位器按钮1通常是鼠标左键，定位器按钮2通常是鼠标中键，定位器按钮3通常是鼠标右键。定位器点击窗口会将该窗口切换为当前窗口。在操作中心之外的窗口点击的话，将会关闭操作中心。定位器命令随按下的定位器按钮、按键、点击、悬停的窗口而异。以下如无特别说明，定位器在构件上悬停，将会弹出构件功能提示窗口。
.
.TP
以下如无特别说明，移动窗口是指把窗口从点击窗口的位置移动到释放相应定位器按钮的位置，在平铺模式下进行此操作，则还会把该窗口移到堆叠层顶部；交换窗口是指在平铺模式下把所点击的窗口与释放相应定位器按钮时光标所在的窗口交换位置；切换位置是指把所点击的窗口切换到所点击位置按钮所表示的位置，或把所点击的窗口切换到释放相应定位器按钮时光标所在的位置并位于释放光标时所在的窗口前边，但以下情况例外：在屏幕左边缘释放时，如次要区域存在窗口，则窗口切换到次要区域顶部，否则则切换到主要区域顶部；在屏幕右边缘释放时，切换到固定区域顶部；在根窗口释放时，切换到主区域顶部。
.
.TP
某些定位器按钮1单击命令，直接根据其所操作的构件的名字就能理解命令的含义，或者构件功能提示已经把命令的含义解析得很清楚。对于这些定位器命令，这里就不作说明。
.
.TP
.B 操作应用窗口（如无特别说明，相应的定位器命令为：定位器按钮1-单击）
    窗口标题区域：
        定位器按钮1 - 单击    聚焦该窗口，
        定位器按钮1 - 移动    移动窗口，
        定位器按钮2 - 移动    切换位置，
        定位器按钮3 - 移动    交换窗口；
    窗口边框：
        定位器按钮1 - 单击    聚焦该窗口，
        定位器按钮1 - 移动    调整窗口尺寸；
    窗口非框架区域：
        定位器按钮1            - 单击   聚焦该窗口，
        Mod4+定位器按钮1       - 移动   移动窗口，
        Mod4+Shift+定位器按钮1 - 移动   调整窗口尺寸，
        Mod4+定位器按钮2       - 移动   切换位置，
        Mod4+定位器按钮3       - 移动   交换窗口。
.
.TP
.B 操作根窗口（如无特别说明，相应的定位器命令为：定位器按钮1-移动）
    主、次区域之间：调整主、次区域的比例；
    主、固定区域之间：调整主、固定区域的比例。
.
.TP
.B 操作任务栏（如无特别说明，相应的定位器命令为：定位器按钮1-单击）
    任务栏虚拟桌面按钮：
        定位器按钮1              - 单击     切换到该虚拟桌面，
        Control+定位器按钮1      - 单击     当前窗口移动到该虚拟桌面，并切换到该虚拟桌面，
        Control+Mod1+定位器按钮1 - 单击     所有窗口移动到该虚拟桌面，并切换到该虚拟桌面，
        定位器按钮2              - 单击     当前窗口附加到该虚拟桌面，
        Mod1+定位器按钮2         - 单击     所有窗口附加到该虚拟桌面，
        Shift+定位器按钮2        - 单击     当前窗口附加到所有虚拟桌面，
        定位器按钮3              - 单击     当前窗口移动到该虚拟桌面，
        Mod1+定位器按钮3         - 单击     所有窗口移动到该虚拟桌面；
    任务栏的图标：
        定位器按钮1      - 单击     去缩微化该窗口，
        定位器按钮3      - 移动     交换窗口，
        定位器按钮2      - 移动     切换位置，
        Mod4+定位器按钮2 - 单击     关闭图标及对应的窗口。
.TP
.B 操作操作中心（如无特别说明，相应的定位器命令为：定位器按钮1-单击）
    运行按钮：打开命令输入框并独享键盘。输入命令的一部分或全部之后，按回车键即可运行第一个匹配的命令并退出。按Esc键或用定位器点击该输入框以外的地方即可关闭命令输入框。支持简单的编辑功能，可使用Backspace键删除光标前的一个字符，使用Del键删除光标之后的一个字符，使用向左键使光标移动到前一个字符的位置，使用向右键使光标移动到后一个字符的位置，使用Home键使光标移动到第一个字符之前，使用End使光标移动到最后一个字符后边，使用Control+u清空光标之前的所有字符，使用Control+v在光标位置粘贴内容，使用Tab键补全命令。
.
.SH 特性
.
.TP
特性是一种与gwm通信的机制。可使用xprop(1)修改特性。除了X标准特性、ICCCM特性、EWMH特性外，gwm还支持以下特性：
.
.TP
.B GWM_MAIN_COLOR_NAME
gwm界面主颜色名。字符串格式。支持英文颜色名和十六进制字符串（如："#abcdef"）。修改该特性会更改颜色主题。如：xprop -root -f GWM_MAIN_COLOR_NAME 8s -set GWM_MAIN_COLOR_NAME "black"。
.
.SH 配置
.
.TP
目前只能通过修改源代码来修改配置。具体是修改config.c、bind_cfg.h、rule_cfg.h，该文件已经包含详细的配置注释。
.
.SH 漏洞报告
.
因为目前尚未完全实现ICCCM和EWMH协议，故使用了这些协议的程序窗口可能不能正常运行。若你发现其他漏洞，则请向<406643764@qq.com>报告。
.
.SH 作者
.
此程序由gsm<406643764@qq.com>开发。
.br
官方网站：https://sourceforge.net/projects/gsmwm/。
.
.br
官方QQ群：群账号为920793458，群名为gwm。
.
.SH 版权
.
版权 \(co 2020-2025 gsm <406643764@qq.com>。
.br
本程序为自由软件：你可以依据自由软件基金会所发布的第三版或更高版本的GNU通用公共许可证重新发布、修改本程序。
